#ifndef __BUSQUEDAS_H__
#define __BUSQUEDAS_H__

#include "../indice/invertedindex/src/invertedindex.h"
#include "../indice/invertedindex/src/document.h"
#include "../indice/invertedindex/src/invertedindexdata.h"

#include <vector>
#include <string>

using namespace invertedindex;

using std::string;
using std::vector;

typedef vector<unsigned int> ListaDocumentos;
typedef vector<string> ListaPalabrasOrdenamiento;

class Buscador{
	private:
	ListaPalabrasOrdenamiento lpo; 
	int cantCorchetes;
	public:
	Buscador(){};
	~Buscador(){};
	ListaDocumentos* RealizarBusqueda( string strBusqueda );
	ListaDocumentos* BuscarPalabra( string palabra );
	ListaDocumentos* Interseccion( ListaDocumentos* retLstTmp, ListaDocumentos* retLst );
	ListaDocumentos* Union( ListaDocumentos* retLstTmp, ListaDocumentos* retLst );
	ListaDocumentos* Complemento( ListaDocumentos* retLst );
	void trim(string& cadena);
	
	ListaDocumentos* RealizarBusquedaAvanzada(string frase);
	
	void eliminarCorchetes(string &strBusqueda);
	void ordenarPorCorchetes(ListaDocumentos* listaDocs);
};


#endif
